//rollup --config rollup.config.js --environment MODE:local
const mode = process.env.MODE;
const isLocal = mode === "local";
import {terser} from 'rollup-plugin-terser';

export default {
  input:'src/main.js',

  //除了整个配置对象可以是个数组 output也可以是一个数组
  output:{
    file:'dist/bundle.js',//输出文件的路径和名称

    format: isLocal ? "es" : 'umd',//六种输出格式：amd/es6/iife/umd/cjs/system
    /*
      + amd: Asynchronous Module Definition异步模块定义
      + ES6 module是es6提出了新的模块化方案
      + IIFE(Immediately Invoked Function Expression)即立即执行函数表达式，所谓立即执行，就是声明一个函数，声明完了立即执行
      + UMD全称为Universal Module Definition,也就是通用模块定义
      + cjs是nodejs采用的模块化标准，commonjs使用方法require来引入模块,这里require()接收的参数是模块名或者是模块文件的路径
    */

    name:'bundleName'//当format为iife和umd时必须提供，将作为全局变量挂在window下

    ,banner: "/** Hello This is Banner **/"
    //↑ 会在打包出来的代码最上面加上这段话
    //  和terser压缩插件一起使用的话 会无效

    //output里也可以使用plugin, 只是执行的时间不一样
    //这里是在代码编译做完之后执行的一些plugin, 比如说压缩
    //放在这里的plugin只会执行Output Generation Hooks
    //而如果放在外层（output外）则Output Generation Hooks和Build Hooks都会执行
    /*,plugins: [
      terser() //← 此插件放在外面貌似也生效
    ]*/
  }

  ,plugins:[]
}

//可以是个数组
/*export default [
  //要用rollup处理的第一个文件
  {
    input: 'index.js',
    output: {
      file: 'index.es.js',
      format: 'es'
    }
    //↑ output 也可以是一个数组
  },

  //要rollup处理的第二份文件
  {
    input: 'index.js',
    output: {
      file: 'index.umd.js',
      format: 'umd'
    }
  }
]*/
